package models

import (
	"fmt"
	"github.com/joho/godotenv"
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"log"
	"os"
	"sync"
)

var db *gorm.DB
var once sync.Once

// GetDB 返回数据库连接的单例
func GetDB() *gorm.DB {
	once.Do(func() {
		// 加载 .env 文件
		errEnv := godotenv.Load()
		if errEnv != nil {
			log.Fatal("Error loading .env file")
		}
		dsn := os.Getenv("DB_DSN")
		fmt.Println(dsn)
		var err error
		db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
		if err != nil {
			panic("Failed to connect to database: " + err.Error())
		}
	})
	return db
}
